• 在线客服

  • 扫描二维码
    下载博学谷APP

  • 扫描二维码
    关注博学谷微信公众号

  • 意见反馈

原创 map函数和reduce函数知识点讲解

发布时间:2019-06-28 15:26:17 浏览 12310 来源:博学谷资讯 作者:三省

      map函数和reduce函数知识点讲解,根据参数,参数map()包含两个参数,第一个参数是一个函数,第二个是序列(列表 或元组)。reduce()第一个参数是函数,第二个是序列(列表或元组);依据数值作用,map()是将传入的函数依次作用到序列的每个元素,reduce()是将传人的函数作用在序列的第一个元素得到结果。

     

    map函数和reduce函数
      1、从参数方面来讲:


      map()包含两个参数,第一个参数是一个函数,第二个是序列(列表 或元组)。其中,函数(即 map 的第一个参数位置的函数)可以接收一个或多个参数。


      reduce()第一个参数是函数,第二个是序列(列表或元组)。但是,其函数必须接收两个参数。


      2、从对传进去的数值作用来讲:


      map()是将传入的函数依次作用到序列的每个元素,每个元素都是独自被函数“作用”一次 。


      reduce()是将传人的函数作用在序列的第一个元素得到结果后,把这个结果继续与下一个元素作用(累积计算)。


      map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。


      >>> def f(x):


      ... return x * x


      ...


      >>> r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])


      >>> list(r)


      [1, 4, 9, 16, 25, 36, 49, 64, 81


      map()传入的第一个参数是f,即函数对象本身。由于结果r是一个Iterator,Iterator是惰性序列,


      因此通过list()函数让它把整个序列都计算出来并返回一个list。


      reduce把一个函数作用在一个序列[x1, x2, x3, ...]上,这个函数必须接收两个参数,


      reduce把结果继续和序列的下一个元素做累积计算,其效果就是


      reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)


      age:利用map和reduce编写一个str2float函数,把字符串'123.456'转换成浮点数123.456


      def str2float(s):


      def fn(x,y):


      return x*10+y


      n=s.index('.')


      s1=list(map(int,[x for x in s[:n]]))


      s2=list(map(int,[x for x in s[n+1:]]))


      return reduce(fn,s1) + reduce(fn,s2)/10**len(s2)


      print('\'123.4567\'=',str2float('123.4567'))


      Python内建的filter()函数用于过滤序列。


      和map()类似,filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素


      然后根据返回值是True还是False决定保留还是丢弃该元素。filter()函数返回的是一个Iterator,也就是一个惰性序列。

    申请免费试学名额    

在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!

上一篇: Python开发的内存管理机制及调优手段? 下一篇: lambda函数是什么?lambda函数有什么优势?

相关推荐 更多

热门文章

  • 前端是什么
  • 前端开发的工作职责
  • 前端开发需要会什么?先掌握这三大核心关键技术
  • 前端开发的工作方向有哪些?
  • 简历加分-4步写出HR想要的简历
  • 程序员如何突击面试?两大招带你拿下面试官
  • 程序员面试技巧
  • 架构师的厉害之处竟然是这……
  • 架构师书籍推荐
  • 懂了这些,才能成为架构师
  • 查看更多

扫描二维码,了解更多信息

博学谷二维码